local HC = Instance.new("Part") HC.Name = "HitboxCheck" HC.Anchored = true HC.Locked = true HC.Shape = Enum.PartType.Ball HC.Size = Vector3.new(600,600,600) HC.Transparency = 1 HC.CanCollide = false HC.Touched:Connect(function() end) local PartA = Instance.new("Part") PartA.Transparency = 1 PartA.CanCollide = false local SA = Instance.new("Sound",PartA) SA.SoundId = "rbxasset://sounds/bass.mp3" SA.PlayOnRemove = true SA.TimePosition = 0.2 local PartB = Instance.new("Part") PartB.Transparency = 1 PartB.CanCollide = false local SB = Instance.new("Sound",PartB) SB.SoundId = "rbxasset://sounds/electronicpingshort.wav" SB.PlayOnRemove = true SB.TimePosition = 0.2 local PartC = Instance.new("Part") PartC.Transparency = 1 PartC.CanCollide = false local SC = Instance.new("Sound",PartC) SC.SoundId = "rbxasset://sounds/snap.mp3" SC.PlayOnRemove = true SC.TimePosition = 0.2 PartA.Anchored = true PartB.Anchored = true PartC.Anchored = true local VisCount = 0 function HitEffect(Pos,Type) spawn(function() VisCount = VisCount + 1 local P = Instance.new("Part",script) P.Name = "HitEffect" P.Material = Enum.Material.Neon P.Position = Pos P.Anchored = true P.Locked = true P.CanCollide = false if Type == 1 then P.BrickColor = BrickColor.new("Neon orange") elseif Type == 2 then P.BrickColor = BrickColor.new("Really red") elseif Type == 3 then P.BrickColor = BrickColor.new("Dark blue") else P.BrickColor = BrickColor.new("Cyan") end local S = {} local EffType = math.max(1,math.min(2,Type)) if VisCount < 5 then P.Size = Vector3.new(0.5,0.5,0.5)*EffType P.Shape = Enum.PartType.Ball for i = 1,4 do local SE = Instance.new("Part",script) SE.Name = "HitOutEffect" SE.Size = Vector3.new(0.5,0.5,0.05)*EffType SE.Material = Enum.Material.Neon SE.Position = Pos SE.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) SE.Anchored = true SE.Locked = true SE.CanCollide = false if Type == 1 then SE.BrickColor = BrickColor.new("Bright red") elseif Type == 2 then SE.BrickColor = BrickColor.new("New Yeller") elseif Type == 3 then SE.BrickColor = BrickColor.new("Medium blue") else SE.BrickColor = BrickColor.new("Bright blue") end table.insert(S,SE) end for i = 1,3*EffType do P.Size = P.Size + Vector3.new(0.5,0.5,0.5)*EffType for i = 1,#S do S[i].CFrame = S[i].CFrame*CFrame.new(0,0,0.5*EffType) S[i].Size = S[i].Size+Vector3.new(0,0,0.5) end wait(0.05) end for i = 1,2*EffType do P.Transparency = P.Transparency + 0.5/EffType for i = 1,#S do S[i].CFrame = S[i].CFrame*CFrame.new(0,0,0.25*EffType) S[i].Size = S[i].Size-Vector3.new(0,0,0.5) end wait(0.05) end else P.Size = Vector3.new(2.5,2.5,2.5)*EffType P.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) wait(0.05*EffType) P.Transparency = 0.3 P.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) if Type == 1 then P.BrickColor = BrickColor.new("Bright red") elseif Type == 2 then P.BrickColor = BrickColor.new("New Yeller") elseif Type == 3 then P.BrickColor = BrickColor.new("Medium blue") else P.BrickColor = BrickColor.new("Bright blue") end wait(0.05*EffType) P.Transparency = 0.6 P.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) if Type == 1 then P.BrickColor = BrickColor.new("Neon orange") elseif Type == 2 then P.BrickColor = BrickColor.new("Really red") elseif Type == 3 then P.BrickColor = BrickColor.new("Dark blue") else P.BrickColor = BrickColor.new("Cyan") end wait(0.05*EffType) end VisCount = VisCount - 1 P:Destroy() for i = 1,#S do S[i]:Destroy() end end) end local SoundCount = 0 function PlayFX(type,pitch,vol,pos) if SoundCount < 30 then local waiter = 0 local Part,Sound if type == "A" then Part,Sound,waiter = PartA,SA,1 elseif type == "B" then Part,Sound,waiter = PartB,SB,0.7 elseif type == "C" then Part,Sound,waiter = PartC,SC,0.4 end Sound.PlaybackSpeed = pitch Sound.Volume = vol Part.Position = pos Part.Parent = script Part.Parent = nil SoundCount = SoundCount + 1 delay(waiter/pitch,function() SoundCount = SoundCount - 1 end) end end function Hurt(pos) spawn(function() PlayFX("C",0.3,0.8,pos) wait(0.05) for i = 1,6 do PlayFX("C",0.6,1-i*0.15,pos) wait(0.05) end end) HitEffect(pos,1) end function Deflect(pos) spawn(function() PlayFX("C",0.8,1,pos) PlayFX("B",0.8,1.5,pos) wait(0.05) PlayFX("B",1.6,1.5,pos) wait(0.05) for i = 1,4 do PlayFX("B",2.4,1.5-i*0.3,pos) wait(0.05) PlayFX("B",3.2,1.5-i*0.3,pos) wait(0.05) end end) HitEffect(pos,0) end function Swish(pos) spawn(function() for i = 1,3 do PlayFX("C",0.5+i*0.6,0.8,pos) wait(0.05) end for i = 1,3 do PlayFX("C",2.2-i*0.2,0.8-i*0.15,pos) wait(0.05) end end) end function Appear(pos) spawn(function() for i = 1,10 do PlayFX("C",1.25,i*0.12,pos) wait(0.1) end end) end function Poof(pos) spawn(function() for i = 1,3 do PlayFX("A",0.8-i*0.1,0.8,pos) PlayFX("C",0.25,1.2-i*0.1,pos) wait(0.05) end end) end local DontChase = {} local Gh = {} local HitCount = 0 local DefCount = 0 local DamageDone = 0 local ConfirmLast = 0 local Spawned = 0 local function Update() print("Hits: "..HitCount.." / Blocked: "..DefCount.." / Damage: "..DamageDone.." / Confirmed: "..ConfirmLast.." / Spawned: "..Spawned) end Update() local function Make(Name,Display,CF,Color,Player,Summoner,SHum,SetPlayer,Wand,Face,HM,HT,AddOns,Fling) Spawned = Spawned + 1 Update() local Model = Instance.new("Model") Model.Name = Name local H = Instance.new("Part",Model) H.Name = "Head" H.CFrame = CF*CFrame.new(0,1.5,0) H.Size = Vector3.new(2,1,1) H.TopSurface = Enum.SurfaceType.Smooth local face = Instance.new("Decal",H) face.Name = "face" face.Texture = Face local Mesh = Instance.new("SpecialMesh",H) Mesh.Scale = Vector3.new(1.25,1.25,1.25) if HM then Mesh.Scale = Vector3.new(1,1,1) Mesh.MeshId = HM if HT then Mesh.TextureId = HT end end local T = Instance.new("Part",Model) T.Name = "Torso" T.CFrame = CF T.Size = Vector3.new(2,2,1) T.LeftSurface = Enum.SurfaceType.Weld T.RightSurface = Enum.SurfaceType.Weld local roblox = Instance.new("Decal",T) roblox.Name = "roblox" local LA = Instance.new("Part",Model) LA.Name = "Left Arm" LA.CFrame = CF*CFrame.new(-1.5,0,0) LA.Size = Vector3.new(1,2,1) local RA = Instance.new("Part",Model) RA.Name = "Right Arm" RA.CFrame = CF*CFrame.new(1.5,0,0) RA.Size = Vector3.new(1,2,1) local LL = Instance.new("Part",Model) LL.Name = "Left Leg" LL.CFrame = CF*CFrame.new(-0.5,-2,0) LL.Size = Vector3.new(1,2,1) LL.BottomSurface = Enum.SurfaceType.Smooth local RL = Instance.new("Part",Model) RL.Name = "Right Leg" RL.CFrame = CF*CFrame.new(0.5,-2,0) RL.Size = Vector3.new(1,2,1) RL.BottomSurface = Enum.SurfaceType.Smooth local R = Instance.new("Part",Model) R.Name = "HumanoidRootPart" R.CFrame = CF R.Size = Vector3.new(2,2,1) R.Transparency = 1 Model.PrimaryPart = H H.Locked = true T.Locked = true LA.Locked = true RA.Locked = true LL.Locked = true RL.Locked = true R.Locked = true local N = Instance.new("Motor6D",T) N.Name = "Neck" N.Part0 = T N.Part1 = H N.C0 = CFrame.new(0,1,0,-1,0,0,0,0,1,0,1,-0) N.C1 = CFrame.new(0,-0.5,0,-1,0,0,0,0,1,0,1,-0) N.MaxVelocity = 0.2 local LS = Instance.new("Motor6D",T) LS.Name = "Left Shoulder" LS.Part0 = T LS.Part1 = LA LS.C0 = CFrame.new(-1,0.5,0,0,0,-1,0,1,0,1,0,0) LS.C1 = CFrame.new(0.5,0.5,0,0,0,-1,0,1,0,1,0,0) LS.MaxVelocity = 0.2 local RS = Instance.new("Motor6D",T) RS.Name = "Right Shoulder" RS.Part0 = T RS.Part1 = RA RS.C0 = CFrame.new(1,0.5,0,0,0,1,0,1,-0,-1,0,0) RS.C1 = CFrame.new(-0.5,0.5,0,0,0,1,0,1,-0,-1,0,0) RS.MaxVelocity = 0.2 local LH = Instance.new("Motor6D",T) LH.Name = "Left Hip" LH.Part0 = T LH.Part1 = LL LH.C0 = CFrame.new(-1,-1,0,0,0,-1,0,1,0,1,0,0) LH.C1 = CFrame.new(-0.5,1,0,0,0,-1,0,1,0,1,0,0) LH.MaxVelocity = 0.2 local RH = Instance.new("Motor6D",T) RH.Name = "Right Hip" RH.Part0 = T RH.Part1 = RL RH.C0 = CFrame.new(1,-1,0,0,0,1,0,1,0,-1,0,0) RH.C1 = CFrame.new(0.5,1,0,0,0,1,0,1,-0,-1,0,0) RH.MaxVelocity = 0.2 local RJ = Instance.new("Motor6D",R) RJ.Name = "RootJoint" RJ.Part0 = R RJ.Part1 = T RJ.C0 = CFrame.new(0,0,0,-1,0,0,0,0,1,0,1,-0) RJ.C1 = CFrame.new(0,0,0,-1,0,0,0,0,1,0,1,-0) RJ.MaxVelocity = 0.2 N.DesiredAngle = 0.385 LS.DesiredAngle = 0.385 RS.DesiredAngle = 1.57 LH.DesiredAngle = -0.385 RH.DesiredAngle = -0.385 RJ.DesiredAngle = -0.385 local FCA = Instance.new("Attachment",H) FCA.Name = "FaceCenterAttachment" local FFA = Instance.new("Attachment",H) FFA.Name = "FaceFrontAttachment" FFA.Position = Vector3.new(0,0,-0.6) local HrA = Instance.new("Attachment",H) HrA.Name = "HairAttachment" HrA.Position = Vector3.new(0,0.6,0) local HtA = Instance.new("Attachment",H) HtA.Name = "HatAttachment" HtA.Position = Vector3.new(0,0.6,0) local BBA = Instance.new("Attachment",T) BBA.Name = "BodyBackAttachment" BBA.Position = Vector3.new(0,0,0.5) local BFA = Instance.new("Attachment",T) BFA.Name = "BodyFrontAttachment" BFA.Position = Vector3.new(0,0,-0.5) local LCA = Instance.new("Attachment",T) LCA.Name = "LeftCollarAttachment" LCA.Position = Vector3.new(-1,1,0) local NA = Instance.new("Attachment",T) NA.Name = "NeckAttachment" NA.Position = Vector3.new(0,1,0) local RCA = Instance.new("Attachment",T) RCA.Name = "RightCollarAttachment" RCA.Position = Vector3.new(1,1,0) local WBA = Instance.new("Attachment",T) WBA.Name = "WaistBackAttachment" WBA.Position = Vector3.new(0,-1,0.5) local WCA = Instance.new("Attachment",T) WCA.Name = "WaistCenterAttachment" WCA.Position = Vector3.new(0,-1,0) local WFA = Instance.new("Attachment",T) WFA.Name = "WaistFrontAttachment" WFA.Position = Vector3.new(0,-1,-0.5) local LGA = Instance.new("Attachment",LA) LGA.Name = "LeftGripAttachment" LGA.Position = Vector3.new(0,-1,0) local LSA = Instance.new("Attachment",LA) LSA.Name = "LeftShoulderAttachment" LSA.Position = Vector3.new(0,1,0) local RGA = Instance.new("Attachment",RA) RGA.Name = "RightGripAttachment" RGA.Position = Vector3.new(0,-1,0) local RSA = Instance.new("Attachment",RA) RSA.Name = "RightShoulderAttachment" RSA.Position = Vector3.new(0,1,0) local LFA = Instance.new("Attachment",LL) LFA.Name = "LeftFootAttachment" local RFA = Instance.new("Attachment",RL) RFA.Name = "RightFootAttachment" local RtA = Instance.new("Attachment",R) RtA.Name = "RootAttachment" local Humanoid = Instance.new("Humanoid",Model) Humanoid.BreakJointsOnDeath = false Humanoid.WalkSpeed = 24 Humanoid.DisplayName = Display Instance.new("Animator",Humanoid) local BodyColors = Instance.new("BodyColors",Model) BodyColors.HeadColor = Color BodyColors.TorsoColor = Color BodyColors.LeftArmColor = Color BodyColors.RightArmColor = Color BodyColors.LeftLegColor = Color BodyColors.RightLegColor = Color local AttackerTag = Instance.new("ObjectValue",Model) AttackerTag.Name = "Attacker" AttackerTag.Value = Player local pof = true local function Died() pof = false local Amount = 1 if SetPlayer then Amount = 3.5 end game:GetService("Debris"):AddItem(Model,Amount) N.DesiredAngle = 0 LS.DesiredAngle = -3.14 RS.DesiredAngle = 3.14 LH.DesiredAngle = -0.2 RH.DesiredAngle = 1.57 RJ.DesiredAngle = 0 wait(0.15) LH.DesiredAngle = -1.57 wait(0.3) LH.DesiredAngle = 0 RH.DesiredAngle = 0 end Humanoid.Died:Connect(Died) local In = true table.insert(DontChase,Humanoid) table.insert(Gh,Model) local function Changed(property) if property == "Parent" and Model.Parent == nil then if In then In = false pof = false local P = Instance.new("Part",script) P.Name = "VanishEffect" P.Shape = Enum.PartType.Ball P.Size = Vector3.new(1,1,1) P.Transparency = 1 P.Material = Enum.Material.Neon P.Position = R.Position P.Anchored = true P.Locked = true P.CanCollide = false P.BrickColor = Color Poof(P.Position) for i = 1,10 do P.Transparency = P.Transparency - 0.05 P.Size = P.Size + Vector3.new(0.5,0.5,0.5) wait(0.05) end for i = 1,5 do P.Transparency = P.Transparency + 0.1 wait(0.05) end P:Destroy() Make("Forest Ghost ("..Color.Name..")","Forest Ghost ("..Color.Name..")",CFrame.new(math.random(-240,240),3,math.random(-240,240)),Color,nil,nil,nil,nil,nil,"rbxasset://textures/face.png",nil,nil,{},false) end end end Model.Changed:Connect(Changed) local function Changed2(property) if property == "Parent" and Summoner.Parent == nil and pof then pof = false game:GetService("Debris"):AddItem(Model,60+table.find(Gh,Model)*0.5) end end if Summoner then Summoner.Changed:Connect(Changed2) Changed2("Parent") if SHum then SHum.Died:Connect(function() if pof then pof = false game:GetService("Debris"):AddItem(Model,60+table.find(Gh,Model)*0.5) end end) end end for i = 1,#AddOns do AddOns[i]:Clone().Parent = Model end local D = Model:GetDescendants() for i = 1,#D do if D[i]:IsA("BasePart") then D[i].BrickColor = Color D[i].CustomPhysicalProperties = PhysicalProperties.new(Enum.Material.Plastic) D[i].Material = Enum.Material.ForceField end end if Fling then R.Velocity = Vector3.new(0,125,0) end local L = Instance.new("PointLight",R) L.Range = 5 L.Color = Color.Color local P = Instance.new("Part",script) P.Name = "AppearEffect" P.Shape = Enum.PartType.Ball P.Size = Vector3.new(1,1,1) P.Transparency = 1 P.Material = Enum.Material.Neon P.CFrame = CF+Vector3.new(0,-3,0) P.Anchored = true P.Locked = true P.CanCollide = false P.BrickColor = Color Appear(P.Position) local Offsets = { CFrame.new(0,-2.7,-0.2), CFrame.new(0.4,-2.4,0), CFrame.new(0,-2.1,0.6), CFrame.new(-0.8,-1.8,0), CFrame.new(-1,-1.5,-1), CFrame.new(1.2,-1.2,-1.2), CFrame.new(1.4,-0.9,1.4), CFrame.new(-1.6,-0.6,1.6), CFrame.new(-0.8,-0.3,0.6), CFrame.new(0,0,0), } for i = 1,10 do P.Transparency = P.Transparency - 0.1 P.Size = P.Size + Vector3.new(0.25,0.25,0.25) P.CFrame = CF*Offsets[i] wait(0.1) end Poof(P.Position) if SetPlayer then SetPlayer.Character = Model Model.Parent = workspace else Model.Parent = script end P:Destroy() spawn(function() local Targ local Hum local Count = 0 local LastAttack = 0 local Bill local Image local ScreenGui local Btn local Atk = true if SetPlayer then if SetPlayer.Parent and game:GetService("Players"):GetPlayerFromCharacter(Model) == SetPlayer then local Gui = SetPlayer:FindFirstChildWhichIsA("PlayerGui") if Gui then Bill = Instance.new("BillboardGui",Gui) Bill.Size = UDim2.new(8,0,8,0) Bill.AlwaysOnTop = true Image = Instance.new("ImageLabel",Bill) Image.Image = "rbxasset://textures/MouseLockedCursor.png" Image.Size = UDim2.new(1,0,1,0) Image.Position = UDim2.new(0.5,0,0.5,0) Image.AnchorPoint = Vector2.new(0.5,0.5) Image.BackgroundTransparency = 1 Image.ImageTransparency = 1 Image.ImageColor3 = Color.Color ScreenGui = Instance.new("ScreenGui",Gui) ScreenGui.Name = "Toggle" Btn = Instance.new("TextButton",ScreenGui) Btn.Size = UDim2.new(0.075,0,0.1,0) Btn.Position = UDim2.new(0.875,0,0.2,0) Btn.Font = Enum.Font.Fantasy Btn.TextScaled = true Btn.TextStrokeTransparency = 0 Btn.TextColor3 = Color3.new(1-Color.r,1-Color.g,1-Color.b) Btn.TextStrokeColor3 = Color3.new(0,0,0) Btn.BackgroundColor3 = Color.Color Btn.BackgroundTransparency = 0.5 Btn.Text = "Attack by running: On" Btn.MouseButton1Click:Connect(function() Atk = not Atk if Atk then Btn.Text = "Attack by running: On" else Btn.Text = "Attack by running: Off" end end) end else game:GetService("Debris"):AddItem(Model,1) end end spawn(function() while In do wait(1) Humanoid.Health = Humanoid.Health + 1 end end) local Speed = 0 local Tool local ToolAnim = "Slash" local LastToolAnim = 0 local Look = false local AnimFrame = 0 local State = Humanoid:GetState() local LastGround = 0 local function FallCheck(st) if st == Enum.HumanoidStateType.FallingDown or st == Enum.HumanoidStateType.PlatformStanding or st == Enum.HumanoidStateType.Ragdoll or st == Enum.HumanoidStateType.Physics then return true else return false end end local function RunCheck(st) if st == Enum.HumanoidStateType.Running or st == Enum.HumanoidStateType.RunningNoPhysics then return true else return false end end local function StateChanged(old,new) State = new end Humanoid.StateChanged:Connect(StateChanged) local function Movement(spd) Speed = spd end Humanoid.Running:Connect(Movement) Humanoid.Climbing:Connect(Movement) Humanoid.Swimming:Connect(Movement) local StartRun = 0 local Run = false spawn(function() while In do Tool = Model:FindFirstChildWhichIsA("Tool") if Tool then local A = Tool:FindFirstChild("toolanim") if A and A:IsA("StringValue") then LastToolAnim = workspace.DistributedGameTime ToolAnim = A.Value game:GetService("Debris"):AddItem(A,0.2) if not FallCheck(State) and workspace.DistributedGameTime <= LastAttack + 0.75 then if ToolAnim == "Lunge" then N.DesiredAngle = 0 LS.DesiredAngle = 0.7 RS.DesiredAngle = 1.57 LH.DesiredAngle = 1.57 RH.DesiredAngle = 0.7 RJ.DesiredAngle = 0 elseif ToolAnim == "Slash" then RS.DesiredAngle = 0 end end end end if Speed > 22 then if not Run then StartRun = workspace.DistributedGameTime Run = true end else Run = false end wait(0.05) end end) spawn(function() while In and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead do if RunCheck(State) then LastGround = workspace.DistributedGameTime end if workspace.DistributedGameTime <= LastAttack + 0.75 then wait(0.05) else local Action = 0 if Tool then if workspace.DistributedGameTime < LastToolAnim + 0.25 then if ToolAnim == "Lunge" then N.DesiredAngle = 0 LS.DesiredAngle = 0.7 RS.DesiredAngle = 1.57 LH.DesiredAngle = 1.57 RH.DesiredAngle = 0.7 RJ.DesiredAngle = 0 Action = 3 elseif ToolAnim == "Slash" then RS.DesiredAngle = 0 Action = 2 end else RS.DesiredAngle = 1.57 Action = 1 end end if FallCheck(State) then AnimFrame = 0 if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then N.DesiredAngle = 0 RJ.DesiredAngle = 0 LS.DesiredAngle = -3.14 if not Tool then RS.DesiredAngle = 3.14 end LH.DesiredAngle = 1.57 RH.DesiredAngle = -1.57 end wait(0.15) if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then N.DesiredAngle = 0 RJ.DesiredAngle = 0 LS.DesiredAngle = -3.14 if not Tool then RS.DesiredAngle = 3.14 end LH.DesiredAngle = 0 RH.DesiredAngle = -1.57 end wait(0.3) while FallCheck(Humanoid:GetState()) do if workspace.DistributedGameTime > LastAttack + 0.75 then N.DesiredAngle = 0 RJ.DesiredAngle = 0 LS.DesiredAngle = -3.14 if not Tool then RS.DesiredAngle = 3.14 end LH.DesiredAngle = 0 RH.DesiredAngle = 0 if Tool then if workspace.DistributedGameTime < LastToolAnim + 0.25 then if ToolAnim == "Lunge" then N.DesiredAngle = 0 LS.DesiredAngle = 0.7 RS.DesiredAngle = 1.57 LH.DesiredAngle = 1.57 RH.DesiredAngle = 0.7 RJ.DesiredAngle = 0 Action = 3 elseif ToolAnim == "Slash" then RS.DesiredAngle = 0 Action = 2 end else RS.DesiredAngle = 1.57 Action = 1 end end end wait(0.05) end elseif State == Enum.HumanoidStateType.Freefall then AnimFrame = 0 if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if R.Velocity.Y > 1 or workspace.DistributedGameTime < LastGround + 0.2 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = 0.7 if not Tool then RS.DesiredAngle = -0.7 end LH.DesiredAngle = 0.7 RH.DesiredAngle = -0.7 else if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -3.6 if not Tool then RS.DesiredAngle = 3.6 end LH.DesiredAngle = -0.7 RH.DesiredAngle = 0.3 end end wait(0.05) elseif State == Enum.HumanoidStateType.Climbing then if math.abs(Speed) > 0.1 then if Speed > 0 then AnimFrame = AnimFrame + 1 if AnimFrame > 4 then AnimFrame = 1 end else AnimFrame = AnimFrame - 1 if AnimFrame < 1 then AnimFrame = 4 end end if AnimFrame == 1 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -0.8 if not Tool then RS.DesiredAngle = 2.8 end LH.DesiredAngle = -0.7 RH.DesiredAngle = -0.3 end elseif AnimFrame == 2 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -1.4 if not Tool then RS.DesiredAngle = 1.6 end LH.DesiredAngle = -0.5 RH.DesiredAngle = 0 end elseif AnimFrame == 3 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -2.8 if not Tool then RS.DesiredAngle = 0.8 end LH.DesiredAngle = 0.3 RH.DesiredAngle = 0.7 end else if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -1.6 if not Tool then RS.DesiredAngle = 1.4 end LH.DesiredAngle = 0 RH.DesiredAngle = 0.5 end end wait(0.125) else AnimFrame = 0 if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -1.57 if not Tool then RS.DesiredAngle = 1.57 end LH.DesiredAngle = -0.5 RH.DesiredAngle = 0.5 end wait(0.05) end elseif RunCheck(State) and Speed > 0.1 then AnimFrame = AnimFrame + 1 if AnimFrame > 4 then AnimFrame = 1 end if Speed > 30 or (Speed > 22 and Run and workspace.DistributedGameTime > StartRun + 1.25 and not Tool) then if AnimFrame == 1 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = -0.07 RJ.DesiredAngle = 0.1 end LS.DesiredAngle = -1.45 if not Tool then RS.DesiredAngle = 1.45 end LH.DesiredAngle = 0.9 RH.DesiredAngle = -1.1 end wait(0.15) elseif AnimFrame == 3 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0.07 RJ.DesiredAngle = -0.1 end LS.DesiredAngle = -1.45 if not Tool then RS.DesiredAngle = 1.45 end LH.DesiredAngle = 0.45 RH.DesiredAngle = -0.65 end wait(0.15) else if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -1.57 if not Tool then RS.DesiredAngle = 1.57 end LH.DesiredAngle = 0.75 RH.DesiredAngle = -0.8 end wait(0.1) end elseif Speed > 12 then if AnimFrame == 1 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0.1 RJ.DesiredAngle = -0.125 end LS.DesiredAngle = 0.9 if not Tool then RS.DesiredAngle = 1.35 end LH.DesiredAngle = -1 RH.DesiredAngle = -1.3 end wait(0.12) elseif AnimFrame == 2 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = 0.2 if not Tool then RS.DesiredAngle = 0.8 end LH.DesiredAngle = -0.1 RH.DesiredAngle = -0.8 end wait(0.1) elseif AnimFrame == 3 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = -0.1 RJ.DesiredAngle = 0.125 end LS.DesiredAngle = -1.35 if not Tool then RS.DesiredAngle = -0.5 end LH.DesiredAngle = 1.3 RH.DesiredAngle = 1 end wait(0.12) else if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -0.5 if not Tool then RS.DesiredAngle = -0.2 end LH.DesiredAngle = 0.8 RH.DesiredAngle = 0.1 end wait(0.1) end else if AnimFrame == 1 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = 0.7 if not Tool then RS.DesiredAngle = 0.7 end LH.DesiredAngle = -0.7 RH.DesiredAngle = -0.7 end elseif AnimFrame == 2 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = 0.2 if not Tool then RS.DesiredAngle = 0.2 end LH.DesiredAngle = -0.2 RH.DesiredAngle = -0.2 end elseif AnimFrame == 3 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -0.7 if not Tool then RS.DesiredAngle = -0.7 end LH.DesiredAngle = 0.7 RH.DesiredAngle = 0.7 end else if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -0.2 if not Tool then RS.DesiredAngle = -0.2 end LH.DesiredAngle = 0.2 RH.DesiredAngle = 0.2 end end wait(0.15) end elseif State == Enum.HumanoidStateType.Swimming then AnimFrame = AnimFrame + 1 if AnimFrame > 4 then AnimFrame = 1 end if AnimFrame == 1 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = -0.07 RJ.DesiredAngle = 0.1 end LS.DesiredAngle = -3.5 if not Tool then RS.DesiredAngle = 1.5 end LH.DesiredAngle = 0.7 RH.DesiredAngle = 0.7 end elseif AnimFrame == 2 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -1.9 if not Tool then RS.DesiredAngle = 0.8 end LH.DesiredAngle = 0.3 RH.DesiredAngle = 0.3 end elseif AnimFrame == 3 then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0.07 RJ.DesiredAngle = -0.1 end LS.DesiredAngle = -1.5 if not Tool then RS.DesiredAngle = 3.5 end LH.DesiredAngle = -0.7 RH.DesiredAngle = -0.7 end else if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -0.8 if not Tool then RS.DesiredAngle = 1.9 end LH.DesiredAngle = -0.3 RH.DesiredAngle = -0.3 end end wait(0.25) elseif State == Enum.HumanoidStateType.Seated then AnimFrame = 0 if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 end LS.DesiredAngle = -1.57 if not Tool then RS.DesiredAngle = 1.57 end LH.DesiredAngle = -1.57 RH.DesiredAngle = 1.57 wait(0.05) else AnimFrame = 0 if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0 RJ.DesiredAngle = 0 LS.DesiredAngle = 0 if not Tool then RS.DesiredAngle = 0 end LH.DesiredAngle = 0 RH.DesiredAngle = 0 end end wait(0.05) end end end end) local function Pathfind(pos) local Points = game:GetService("PathfindingService"):ComputeRawPathAsync(R.Position,pos,300) local Co = Points:GetPointCoordinates() local Offset = Vector3.new(0,0,0) local Jump1 = false local Jump2 = false local Jump3 = false local Find1 local Find2 local Find3 if Points.Status == Enum.PathStatus.Success or Points.Status == Enum.PathStatus.ClosestNoPath or Points.Status == Enum.PathStatus.ClosestOutOfRange then local From = R.Position if Co[1] then Find1 = Co[1] if Co[1].Y > From.Y + 1 or Humanoid.Sit or Humanoid.PlatformStand then Jump1 = true end From = Co[1] if Co[2] then Find2 = Co[2] if Co[2].Y > From.Y + 1 or Humanoid.Sit or Humanoid.PlatformStand then Jump2 = true end From = Co[2] if Co[3] then Find3 = Co[3] if Co[3].Y > From.Y + 1 or Humanoid.Sit or Humanoid.PlatformStand then Jump3 = true end end end end end return Points.Status,Jump1,Jump2,Jump3,Find1,Find2,Find3 end local function Check() HC.Parent = script HC.CFrame = R.CFrame local Touching = HC:GetTouchingParts() HC.Parent = nil local Dist = math.huge local Select local Hm for i = 1,#Touching do local Ch = Touching[i].Parent if Ch and Ch:FindFirstChildWhichIsA("ForceField") == nil and Ch ~= Summoner then local Plr = game:GetService("Players"):GetPlayerFromCharacter(Ch) if not Plr then local Tag = Ch:FindFirstChild("Attacker") if Tag and Tag:IsA("ObjectValue") and Tag.Value and Tag.Value:IsA("Player") then Plr = Tag.Value end end if not Player or not Plr or (Player ~= Plr and (Player.Neutral or Plr.Neutral or Player.TeamColor.Name ~= Plr.TeamColor.Name)) then local Hu = Touching[i].Parent:FindFirstChildWhichIsA("Humanoid") if Hu and Hu.Health > 0 and Hu:GetState() ~= Enum.HumanoidStateType.Dead and not table.find(DontChase,Hu) then local EP = Hu.RootPart if EP == nil then EP = Hu.Parent:FindFirstChildWhichIsA("BasePart") end if EP and (EP.Position-R.Position).Magnitude < Dist then Dist = (EP.Position-R.Position).Magnitude Select = EP Hm = Hu end end end end end if Select and Hm then Targ = Select Hum = Hm if Bill and Image then Bill.Adornee = Targ Image.ImageTransparency = 0.5 end else Targ = nil Hum = nil if Bill and Image then Bill.Adornee = nil Image.ImageTransparency = 1 end end end local function LookAnim() if Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then N.DesiredAngle = 0.4 RJ.DesiredAngle = 0.2 if RunCheck(State) and Speed <= 0.1 then LS.DesiredAngle = 0.5 if not Tool then RS.DesiredAngle = 0.5 end LH.DesiredAngle = -0.3 RH.DesiredAngle = -0.3 end end wait(0.6) if Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then N.DesiredAngle = -0.4 RJ.DesiredAngle = -0.2 if RunCheck(State) and Speed <= 0.1 then LS.DesiredAngle = -0.5 if not Tool then RS.DesiredAngle = -0.5 end LH.DesiredAngle = 0.15 RH.DesiredAngle = 0.15 end end end wait(0.3) end end Check() spawn(function() while Humanoid:GetState() ~= Enum.HumanoidStateType.Dead and In do if Btn and Btn.Parent then if Atk and (not SetPlayer or Humanoid.MoveDirection.X ~= 0 or Humanoid.MoveDirection.Z ~= 0) then Btn.TextStrokeColor3 = Color3.new(1,1,1) else Btn.TextStrokeColor3 = Color3.new(0,0,0) end end if Targ and Targ:FindFirstAncestorWhichIsA("Workspace") and Hum and Hum:FindFirstAncestorWhichIsA("Workspace") and Hum.Health > 0 then local Dist = (Targ.Position-R.Position).Magnitude if Dist > 300 then Targ = nil Hum = nil if Bill and Image then Bill.Adornee = nil Image.ImageTransparency = 1 end Count = 0 elseif Atk and Dist < R.Size.Magnitude*1.75 and workspace.DistributedGameTime > LastAttack + 0.75 and (not SetPlayer or Humanoid.MoveDirection.X ~= 0 or Humanoid.MoveDirection.Z ~= 0) then if Btn and Btn.Parent then Btn.TextStrokeColor3 = Color.Color end LastAttack = workspace.DistributedGameTime if not SetPlayer then Humanoid.WalkToPoint = Targ.Position end if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then if not Look then N.DesiredAngle = 0.2 RJ.DesiredAngle = -0.25 end LS.DesiredAngle = -0.2 RS.DesiredAngle = 3 LH.DesiredAngle = -0.5 RH.DesiredAngle = -0.5 end Swish(R.Position) wait(0.15) if Btn and Btn.Parent then if Atk and (not SetPlayer or Humanoid.MoveDirection.X ~= 0 or Humanoid.MoveDirection.Z ~= 0) then Btn.TextStrokeColor3 = Color3.new(1,1,1) else Btn.TextStrokeColor3 = Color3.new(0,0,0) end end if (ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25) and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then if not Look then N.DesiredAngle = -0.4 RJ.DesiredAngle = 0.5 end LS.DesiredAngle = 0.5 RS.DesiredAngle = 0.8 LH.DesiredAngle = -0.8 RH.DesiredAngle = -0.8 end Dist = (Targ.Position-R.Position).Magnitude if Dist < R.Size.Magnitude*1.75 and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead and In and (not SetPlayer or Humanoid.MoveDirection.X ~= 0 or Humanoid.MoveDirection.Z ~= 0) then local Stored = Hum.Health local creator = Instance.new("ObjectValue",Hum) creator.Name = "creator" if Player and Player.Parent then creator.Value = Player end game:GetService("Debris"):AddItem(creator,0.1) Hum:TakeDamage(34) if Hum.Health >= Stored then Deflect(Targ.Position) DefCount = DefCount + 1 Update() else HitCount = HitCount + 1 DamageDone = DamageDone + math.max(0,math.min(math.ceil(Stored),34)) if Stored > 0 and Hum.Health <= 0 then Count = 0 ConfirmLast = ConfirmLast + 1 end Update() Hurt(Targ.Position) end end if not SetPlayer then Humanoid.WalkToPoint = Targ.Position end wait(0.15) if not SetPlayer then Humanoid.WalkToPoint = (R.CFrame*CFrame.new(-1,0,5)).Position end wait(0.2) else if not SetPlayer then local Status,Jump1,Jump2,Jump3,Find1,Find2,Find3 = Pathfind(Targ.Position) if Status == Enum.PathStatus.Success or Status == Enum.PathStatus.ClosestNoPath or Status == Enum.PathStatus.ClosestOutOfRange and Find1 then Humanoid.WalkToPoint = R.Position+(Find1-R.Position).Unit*32 if Jump1 then Humanoid.Jump = true Humanoid.Sit = false end if Find2 then Humanoid.WalkToPoint = R.Position+(Find2-R.Position).Unit*32 if Jump2 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) if Find3 then Humanoid.WalkToPoint = R.Position+(Find3-R.Position).Unit*32 if Jump3 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) end end wait(0.15) elseif Dist < 100 then Humanoid.WalkToPoint = Targ.Position if (Targ.Position.Y > R.Position.Y + 1 and Humanoid:GetState() ~= Enum.HumanoidStateType.Climbing) or Humanoid.Sit or Humanoid.PlatformStand then Humanoid.Jump = true Humanoid.Sit = false end wait(0.2) else Count = Count + 1 wait(0.1) end else wait(0.05) end end Count = Count + 1 if Count > 19 then Count = 0 Check() end elseif Summoner and Summoner:FindFirstAncestorWhichIsA("Workspace") and SHum and SHum:FindFirstAncestorWhichIsA("Workspace") and SHum:GetState() ~= Enum.HumanoidStateType.Dead then Targ = nil Hum = nil if Bill and Image then Bill.Adornee = nil Image.ImageTransparency = 1 end local RP = SHum.RootPart if RP == nil then RP = SHum.Parent:FindFirstChildWhichIsA("BasePart") end if RP and (RP.Position-R.Position).Magnitude < 100 then local Goal = RP.Position+RP.CFrame.LookVector*RP.Size.Z*-12+(RP.CFrame.LookVector*math.min(table.find(Gh,Model)*-3,80)) local Status,Jump1,Jump2,Jump3,Find1,Find2,Find3 = Pathfind(Goal) if Status == Enum.PathStatus.Success or Status == Enum.PathStatus.ClosestNoPath or Status == Enum.PathStatus.ClosestOutOfRange and Find1 then if (R.Position-Goal).Magnitude < 10 then Humanoid.WalkToPoint = Find1 else Humanoid.WalkToPoint = R.Position+(Find1-R.Position).Unit*32 end if Jump1 then Humanoid.Jump = true Humanoid.Sit = false end if Find2 then if (R.Position-Goal).Magnitude < 10 then Humanoid.WalkToPoint = Find2 else Humanoid.WalkToPoint = R.Position+(Find2-R.Position).Unit*32 end if Jump2 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) if Find3 then if (R.Position-Goal).Magnitude < 10 then Humanoid.WalkToPoint = Find3 else Humanoid.WalkToPoint = R.Position+(Find3-R.Position).Unit*32 end if Jump3 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) end end end wait(0.15) local WandHeld = false if Wand and Wand.Parent == Summoner and SHum and SHum:GetState() ~= Enum.HumanoidStateType.Dead then WandHeld = true end Count = Count + 1 if Count > 4 and not WandHeld then Count = 0 Check() end else Count = 0 local Status,Jump1,Jump2,Jump3,Find1,Find2,Find3 = Pathfind(R.Position+Vector3.new(math.random(-32,32),0,math.random(-32,32))) if Status == Enum.PathStatus.Success or Status == Enum.PathStatus.ClosestNoPath or Status == Enum.PathStatus.ClosestOutOfRange and Find1 then Humanoid.WalkToPoint = Find1 if Jump1 then Humanoid.Jump = true Humanoid.Sit = false end if Find2 then Humanoid.WalkToPoint = Find2 if Jump2 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) if Find3 then Humanoid.WalkToPoint = Find3 if Jump3 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) end end end wait(math.random(75,200)/100) Look = true LookAnim() Check() if Targ and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then N.DesiredAngle = 0 RJ.DesiredAngle = 0 if RunCheck(State) and Speed <= 0.1 then LS.DesiredAngle = -2.5 if not Tool then RS.DesiredAngle = 0.3 end LH.DesiredAngle = 0.1 RH.DesiredAngle = 0.1 end end end wait(0.3) Look = false end else Targ = nil Hum = nil if Bill and Image then Bill.Adornee = nil Image.ImageTransparency = 1 end Count = 0 if not SetPlayer then local Status,Jump1,Jump2,Jump3,Find1,Find2,Find3 = Pathfind(R.Position+Vector3.new(math.random(-32,32),0,math.random(-32,32))) if Status == Enum.PathStatus.Success or Status == Enum.PathStatus.ClosestNoPath or Status == Enum.PathStatus.ClosestOutOfRange and Find1 then Humanoid.WalkToPoint = Find1 if Jump1 then Humanoid.Jump = true Humanoid.Sit = false end if Find2 then Humanoid.WalkToPoint = Find2 if Jump2 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) if Find3 then Humanoid.WalkToPoint = Find2 if Jump3 then Humanoid.Jump = true Humanoid.Sit = false end wait(0.05) end end end end wait(math.random(75,200)/100) Look = true LookAnim() Check() if Targ and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then if ToolAnim ~= "Lunge" or workspace.DistributedGameTime > LastToolAnim + 0.25 then N.DesiredAngle = 0 RJ.DesiredAngle = 0 if RunCheck(State) and Speed <= 0.1 then LS.DesiredAngle = -2.5 if not Tool then RS.DesiredAngle = 0.3 end LH.DesiredAngle = -0.1 RH.DesiredAngle = -0.1 end end end wait(0.3) Look = false end end if Bill and Bill.Parent then Bill:Destroy() end if ScreenGui and ScreenGui.Parent then ScreenGui:Destroy() end table.remove(DontChase,table.find(DontChase,Humanoid)) table.remove(Gh,table.find(Gh,Model)) end) end) return Model end wait(10) local ColorList = {"White","Bright green","Bright blue","Bright violet","Bright yellow","Bright red","Royal purple","Cyan","Forest green","Dark stone grey"} for i = 1,#ColorList do spawn(function() Make("Forest Ghost ("..ColorList[i]..")","Forest Ghost ("..ColorList[i]..")",CFrame.new(math.random(-240,240),3,math.random(-240,240)),BrickColor.new(ColorList[i]),nil,nil,nil,nil,nil,"rbxasset://textures/face.png",nil,nil,{},false) end) wait(0.5) end